﻿namespace Pibby.Core.IO
{
	public interface IFolder
	{
		string Name
		{
			get;
		}

		string Path
		{
			get;
			set;
		}

		bool AutoCreate
		{
			get;
			set;
		}

		string Root
		{
			get;
		}

		bool Exists
		{
			get;
		}

		[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "As intended")]
		IFolderCollection GetSubfolders();

		IFileCollection GetFiles();

		IFileCollection GetFiles(string searchPattern);
		
		IFolder Append(string subfolder);

		IFolder Parent { get; }

		string PathToFile(string file);

		IFile ToFile(string file);

		void Create();

		void Delete();
	}
}
